package com.peas.platform.module.icims.base.sys.dto;

import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.common.core.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

// 访问记录
@Data
@EqualsAndHashCode(callSuper = false)
public class VisitDto extends BaseDto {

    // 系统
    @Comment(value = "系统")
    private String system;

    // 系统名称
    @Comment(value = "系统名称")
    private String systemName;

    // 服务
    @Comment(value = "服务")
    private String service;

    // 服务名
    @Comment(value = "服务名")
    private String serviceName;

    // 接口描述
    @Comment(value = "接口描述")
    private String interfaceDesc;

    // 接口地址
    @Comment(value = "接口地址")
    private String interfaceUrl;

    // 处理类
    @Comment(value = "处理类")
    private String clazz;

    // 处理方法
    @Comment(value = "处理方法")
    private String method;

    // 请求ContentType
    @Comment(value = "请求ContentType")
    private String reqContentType;

    // 请求Protocol
    @Comment(value = "请求Protocol")
    private String reqProtocol;

    // 请求Schema
    @Comment(value = "请求Schema")
    private String reqScheme;

    // 请求PathInfo
    @Comment(value = "请求PathInfo")
    private String reqPathInfo;

    // 请求PathTranslated
    @Comment(value = "请求PathTranslated")
    private String reqPathTranslated;

    // 请求URI
    @Comment(value = "请求URI")
    private String reqRequestUri;

    // 请求URL
    @Comment(value = "请求URL")
    private String reqRequestUrl;

    // 请求ContextPath
    @Comment(value = "请求ContextPath")
    private String reqContextPath;

    // 请求QueryString
    @Comment(value = "请求QueryString")
    private String reqQueryString;

    // 请求Method
    @Comment(value = "请求Method")
    private String reqMethod;

    // 请求AuthType
    @Comment(value = "请求AuthType")
    private String reqAuthType;

    // 请求ServletPath
    @Comment(value = "请求ServletPath")
    private String reqServletPath;

    // 请求SessionId
    @Comment(value = "请求SessionId")
    private String reqRequestedSessionId;

    // 请求RemoteUser
    @Comment(value = "请求RemoteUser")
    private String reqRemoteUser;

    // 请求RemoteAddr
    @Comment(value = "请求RemoteAddr")
    private String reqRemoteAddr;

    // 请求RemoteHost
    @Comment(value = "请求RemoteHost")
    private String reqRemoteHost;

    // 请求RemotePort
    @Comment(value = "请求RemotePort")
    private Integer reqRemotePort;

    // 请求ServerName
    @Comment(value = "请求ServerName")
    private String reqServerName;

    // 请求ServerPort
    @Comment(value = "请求ServerPort")
    private Integer reqServerPort;

    // 请求LocalAddr
    @Comment(value = "请求LocalAddr")
    private String reqLocalAddr;

    // 请求LocalName
    @Comment(value = "请求LocalName")
    private String reqLocalName;

    // 请求LocalPort
    @Comment(value = "请求LocalPort")
    private Integer reqLocalPort;

    // 请求Cookies
    @Comment(value = "请求Cookies")
    private String reqCookies;

    // 请求ParameterMap
    @Comment(value = "请求ParameterMap")
    private String reqParameterMap;

    // 请求TrailerFields
    @Comment(value = "请求TrailerFields")
    private String reqTrailerFields;

    // 请求Headers
    @Comment(value = "请求Headers")
    private String reqHeaders;

    // 响应Status
    @Comment(value = "响应Status")
    private Integer respStatus;

    // 响应CharacterEncoding
    @Comment(value = "响应CharacterEncoding")
    private String respCharacterEncoding;

    // 响应ContentType
    @Comment(value = "响应ContentType")
    private String respContentType;

    // 响应Headers
    @Comment(value = "响应Headers")
    private String respHeader;

    // 访问请求ID
    @Comment(value = "访问请求ID")
    private String visitRequestId;

    // 访问时间
    @Comment(value = "访问时间")
    private Date visitTime;

    // 访问用户ID
    // （用户表）外键
    @Comment(value = "访问用户ID")
    private Long visitUser;

    // 访问耗时(毫秒)
    @Comment(value = "访问耗时(毫秒)")
    private Long visitDuration;

    //Criteria
    private Date createTimeStart;
    private Date createTimeEnd;
    private Date updateTimeStart;
    private Date updateTimeEnd;
    private Date visitTimeStart;
    private Date visitTimeEnd;
}
